<?php
class SiteController extends BaseManageController{
	public function actionSet(){
		$site = SiteModel::getSite();
		if(Yii::app()->request->isPostRequest){
			$this->_save($site);
		}
		$this->pageTitle = '网站设置 - ' . Yii::app()->name;
		$this->render('set', array(
			'model' => $site
		));
	}
	
	private function _save($site){
		if(!isset($_POST['Site'])){
			$this->ajax_error('非法请求！');
		}
		$mod = new SiteModel();
		$site = array_merge($site, $_POST['Site']);
		$this->init_pictures('site/' . date('Y/m/d/'), $site, array('has_main_image'=>false));
		$mod->update_by_key($site['_id'], $site);
		SiteModel::clean();
		$this->ajax_info('保存成功！');
	}
	
	/**
	 * 上传文件（供UEditor）
	 */
	public function actionFileUpload(){
		header('Content-Type: text/html; charset=utf-8');
		error_reporting( E_ERROR | E_WARNING );
		
		//上传配置
		$config = array(
			'savePath' => 'upload/' , //保存路径
			'allowFiles' => array('.rar' , '.doc' , '.docx' , '.zip' , '.pdf' , '.txt' , '.swf' , '.wmv', '.xls', '.xlsx') , //文件允许格式
			'maxSize' => 100000 //文件大小限制，单位KB
		);
		//生成上传实例对象并完成上传
		$up = new Uploader('upfile' , $config);
		
		/**
		 * 得到上传文件所对应的各个参数,数组结构
		 * array(
		 *     "originalName" => "",   //原始文件名
		 *     "name" => "",           //新文件名
		 *     "url" => "",            //返回的地址
		 *     "size" => "",           //文件大小
		 *     "type" => "" ,          //文件类型
		 *     "state" => ""           //上传状态，上传成功时必须返回"SUCCESS"
		 * )
		*/
		$info = $up->getFileInfo();
		
		/**
		 * 向浏览器返回数据json数据
		 * {
		 *   'url'      :'a.rar',        //保存后的文件路径
		 *   'fileType' :'.rar',         //文件描述，对图片来说在前端会添加到title属性上
		 *   'original' :'编辑器.jpg',   //原始文件名
		 *   'state'    :'SUCCESS'       //上传状态，成功时返回SUCCESS,其他任何值将原样返回至图片上传框中
		 * }
		*/
		echo json_encode(array(
			'url' 		=> $info['url'],
			'fileType' 	=> $info['type'],
			'original' 	=> $info['originalName'],
			'state' 	=> $info['state']
		));
	}
	
	/**
	 * 上传图片（供UEditor和uploadify使用）
	 */
	public function actionUpload(){
		header('Content-Type: text/html; charset=utf-8');
		error_reporting(E_ERROR | E_WARNING);
		
		//上传配置
		$config = array(
			'savePath' 		=> 'uploads/' . date('Y/m'),
			'maxSize' 		=> 1000, //单位KB
			'allowFiles' 	=> array('.gif', '.png', '.jpg', '.jpeg', '.bmp')
		);
		
		$field_name = 'upfile';
		
		if(isset($_POST['token'])){
			//ajax_file_upload上传
			$verify_token = md5(SITE_ID . $_POST['timestamp']);
			
			if (empty($_FILES) || $_POST['token'] != $verify_token){
				echo json_encode(array(
					'state' => '非法请求！'
				)); 
				return;
			}
			$config['savePath'] = 'uploads/temp/';
			$field_name = 'Filedata';
		}
		
		//生成上传实例对象并完成上传
		$up = new Uploader($field_name, $config);
		
		/**
		 * 得到上传文件所对应的各个参数,数组结构
		 * array(
		 *     'originalName' 	=> '',   //原始文件名
		 *     'name' 			=> '',   //新文件名
		 *     'url' 			=> '',   //返回的地址
		 *     'size' 			=> '',   //文件大小
		 *     'type' 			=> '' ,  //文件类型
		 *     'state' 			=> ''    //上传状态，上传成功时必须返回'SUCCESS'
		 * )
		 */
		$info = $up->getFileInfo();
		
		/**
		 * 向浏览器返回数据json数据
		 * {
		 *   'url'      :'a.jpg',   //保存后的文件路径
		 *   'title'    :'hello',   //文件描述，对图片来说在前端会添加到title属性上
		 *   'original' :'b.jpg',   //原始文件名
		 *   'state'    :'SUCCESS'  //上传状态，成功时返回SUCCESS,其他任何值将原样返回至图片上传框中
		 * }
		*/
		echo json_encode(array(
			'url' 		=> $info['url'],
			'name' 		=> $info['name'],
			'title' 	=> $info['title'],
			'original' 	=> $info['originalName'],
			'state' 	=> $info['state']
		));
	}
}

?>